#ifndef MOUSE_MOTION_H
#define MOUSE_MOTION_H
int calculateSteps(int x0, int y0, int x1, int y1, float pixelsPerStep = 10.0);
void mouseClick(int key);
void mousePress(int key);
void mouseRelease(int key);
void moveRelative(int px, int py,int delayMs);
void moveAbsolute(int px, int py,int screen_width,int screen_height);
void pressAndMoveAbsolute(int key,int px, int py);
void moveBezierAutoSteps(int x0, int y0, int x2, int y2,int screen_width,int screen_height, float pixelsPerStep = 10.0, int delayMs = 5);
void moveArc(int x0, int y0, int x2, int y2, int screen_width, int screen_height, int delayMs);
void moveSineWave(int x0, int y0, int x2, int y2, int screen_width, int screen_height, int delayMs);
void moveParabola(int x0, int y0, int x2, int y2, int screen_width, int screen_height, int delayMs);
void moveRandomJitter(int x0, int y0, int x2, int y2, int screen_width, int screen_height, int delayMs);
void moveSpiral(int x0, int y0, int x2, int y2, int screen_width, int screen_height, int delayMs);

void keyPress(int keyCode);
void keyGroupPress(int keyCodes,...);
void keyRelease();
void enterKey(int keyCode);


void modifyKey(uint8_t modifier, uint8_t keyCode);

void mouseScroll(uint8_t scroll,int direction);
#endif
#ifndef MOUSE_LEFT
#define MOUSE_LEFT 0x01
#endif
#ifndef MOUSE_RIGHT
#define MOUSE_RIGHT 0x02
#endif
#ifndef MOUSE_MIDDLE
#define MOUSE_MIDDLE 0x04
#endif
#ifndef MOUSE_NONE
#define MOUSE_NONE 0x00
#endif
#ifndef HID_RELATIVE_MOUSE_ID
#define HID_RELATIVE_MOUSE_ID 1
#endif
#ifndef HID_ABS_MOUSE_ID
#define HID_ABS_MOUSE_ID 2
#endif
#ifndef HID_KEYBORAD_ID 
#define HID_KEYBORAD_ID 3
#endif

